Introduction

RAINLENDAR 0.21

Rainlendar is a customizable calendar that resides on your desktop and shows the days of the current month. The calendar can use different skins to fit your taste (and theme). You can use different fonts and colors, select the background image or even make the calendar's background transparent. Customization can be done with a simple GUI.

The calendar can also synchronize the events with a server, which will allow you to use it e.g. at home and at work. Rainlendar can also display Outlook's appointments and tasks. There are plenty of other features too. Check the rest of this document for details.

Rainlendar is developed and tested on Windows XP, but it should work on Win98/ME also though Win9x is not officially supported. Also note that some of the skins do not work on Win9x, since it doesn't support transparency. Also some of the plugins do not work corrently with Win9x.

This product includes software developed by Lee Patterson (http://ssobjects.sourceforge.net/).


INSTALLATION

Installing for Explorer

If you are in doubt, just get the installer version of Rainlendar from the webpage (http://www.rainlendar.net) and run it. If you dislike installers, you can also get the zipped archive and uncompress it to some folder. Rainlendar is ready to be used after that. Note that if you want that the calendar starts with the Windows you need to keep the "Startup folder"-option checked in the installation.

Rainlendar is installed for the current user by default. If you want to install it for different users, just run the installer for each of them.

Installing for Litestep

Rainlendar works also as Litestep's plugin. To install in Litestep grap the zip archive and just copy the Rainlendar.dll and the skin, language and plugins folders to your Litestep directory (e.g. C:\Litestep\). You don't need the Rainlendar.exe if you are using Rainlendar as Litestep plugin. After copying, open your step.rc and add following line:

LoadModule C:\Litestep\Rainlendar.dll

... and recycle. If that doesn't work, check the config part of this document for additional step.rc commands that you might need. You can also put the Rainlendar in other folder if you like, just make sure that the LoadModule path points to the correct place (as well as other Rainlendar specific step.rc commands).

Uninstalling

If you installed Rainlendar with the installer you can uninstall it from the "Add or Remove Programs". Otherwise just delete all the files you uncompressed from the zip-file (make sure that Rainlendar isn't running when doing that).

Installing skins

The skins are usually distributed in zip-files that hold the skin's ini-file and graphics files. To install a new skin you need to unzip the file into the Rainlendar's Skins-folder (usually located in C:\Program Files\Rainlendar\Skins).

The skin has one or more ini-files (i.e. a file with .ini extension). The skin's ini-file must be located in a separate subfolder under the Skins-folder (e.g. C:\Program Files\Rainlendar\Skins\MyTestSkin\Skin.ini). If you put it directly into the Skins-folder or if there are more than one subfolder things won't work. After you have the skin in correct place just refresh the calendar and you should see the new skin in the skin menu. If the skin is not visible in the menu the most likely reason is that you created an extra subfolder when the zip was uncompressed. Check the folder structure again and remove the extra subfolder by moving the skin's ini and graphics files to the parent folder.


SETTINGS

The basic configuration of the calendar is done from a GUI which you open from the popup-menu. The settings are saved in a Rainlendar.ini-file when you press the OK-button.

General

Show event message in tooltip
 If enabled a tooltip will open when you move the mouse over a day that has an event. The tooltip will display all the day's events.

Show message alarms
 If enabled a message box will be opened when an event is due. The message box will always be opened in the middle of your desktop.

Show all today's messages at startup
 If enabled a message box will be opened when Rainlendar is started. The message box will display all the today's events.

Disable keyboard shortcuts
If enabled the keyboard shortcuts are disabled. Note that this setting doesn't apply to the global hotkeys defined in the Hotkeys-tab.

Poll wallpaper changes
If Rainlendar doesn't automatically notice wallpaper changes (as it should) you can enable this feature. When enabled Rainlendar checks once per second if the name of the wallpaper has been changed and if it has, the calendar is automatically refreshed. If you're using native transparency you should keep this disabled.

Snap to screen edges
If selected the window will snap to the edges of the screen and other windows. You can deactivate the snapping by holding Shift-key down while dragging the window.

Refresh when screen resolution changes
If selected the calendar is automatically refreshed when the screen resolution is changed. Note that this may cause problems with some games and full screen applications.

Use separator in tooltips
If selected a horizontal line is drawn between the events in the tooltip.

Show tray icon
This displays the current date in your system tray. Doubleclicking the icon toggles the window visibility.

Use native Windows transparency
If selected the calendar will use the native Windows transparency for its alphablended window. Otherwise the alphablending is done manually with the desktop wallpaper. Native transparency works only with Windows 2000 and XP. You can also adjust the overall transparency value from the slider.

Enable/Disable Log
Creates (or deletes) the Rainlendar's log-file. The log is written into the same folder where Rainlendar.dll is (usually C:\Program Files\Rainlendar).

Show Log
Opens the log-file with notepad.

Advanced
Opens the Rainlendar.ini with notepad. See the advanced section below.

Layout

Position
The OnBottom makes the window to stay behind other windows when it's activated with mouse. Normal makes the window behave like normal windows and OnTop makes the calendar to stay on top of other windows. The OnDesktop setting is similar to OnBottom except that it makes a child window of the desktop. The benefit from this is that the calendar will be visible event if Explorer's "Show Desktop" command is issued. The OnDesktop only works with Explorer shell.

Event list window
 You can define here how many days the event list will show. The "Substitute today and tomorrow" means that instead of using the name of the day (e.g. Monday) in the event list "Today" and "Tomorrow" will be used.

Other settings
If "Movable window" is selected, the calendar can be moved with the mouse. Please note that if the background has an alpha mask and the desktop is copied behind the calendar, the moving is really slow and can cause problems with some graphics cards. So, I'd suggest to use this feature only with non-alpha backgrounds or with native transparency.

The "Hide on mouse over" hides the calendar when the mouse is over the window. The calendar will reappear once the mouse is moved off the window. You can disable this feature temporarily by holding Shift-key down while moving the mouse.

"Remember dialog positions" will save the place (and size) where a dialog was closed last time and open it in the same location in the next time.

The "Click through" passes all the mouse events through the calendar. This means that you cannot click the calendar (or the other windows except the message box). You can disable this feature temporarily by holding Shift-key down while moving the mouse (It's not registered immediately so keep the key down for one sec before click through is disabled).

Multiple calendars
This defines how many months are shown in the calendar at the same time. You can set the horizontal and vertical count for the months as well as the the number of previous months are displayed. The "Start from January" option shows January always as the first month. This is useful if you want to show all year at the same time on the desktop.

Opaque on mouse over
Changes the window to completely opaque when the mouse is moved over the calendar. The window should have some transparency assigned with the slider in the General-tab or otherwise this feature doesn't do much.

Transparent on mouse over
Changes the window transparent when the mouse is moved over the calendar. The transparency level is set with the slider in the General-tab. Note that the window is always completely opaque when this setting is set and the mouse is not over the window.

Hotkeys

This page enables to add hotkeys to various actions. The hotkeys are global so it's not necessary to have Rainlendar activated when pressing the keys. It's adviced not to use too simple hotkeys (like Shift + A) since that would execute the hotkey every time you write capital A letter.

Plugins

Here is a list of installed plugins. See the Plugins page in this document for more information about them. The plugins can ge activated and deactivated from here. If the plugin has settings they can be edited by selecting the plugin from the list and pressing the Settings-button. The "Set as Default" button makes the plugin a default which basically means that it's editor (if it has one) will be used when creating new events.

Advanced

There are also some other settings in the Rainlendar.ini that cannot be changed from the GUI. It's possible to change them directly from the Rainlendar.ini. Do not keep the config dialog open when editing the Rainlendar.ini or the settings will be overwritten when you press the OK-button. After you have edited the settings, refresh the calendar and the new sttings will be taken into use.

Here's a list of the settings in Rainlendar.ini (only the ones that cannot be changed from the GUI):

X, Y, TodoX, TodoY, EventListX, EventListY
Defines the location of the calendar, todo and event list windows.

MessageBoxX and MessageBoxY
Defines the location of the Message Box. Note that the position is not pixels like in the other windows but percent of the desktop area.

MessageBoxY

ToolTipMaxWidth
Defines the maximum width (in pixels) of the tooltip. If set to 0 there is no limit.

MessageBoxMaxWidth
Defines the maximum width (in pixels) of the message box. If set to 0 there is no limit.

StartFromMonday
If set to 1 the week will start from Monday (otherwise it's started from Sunday). This is automatically set according to your locale when Rainlendar is started the first time.

Week1HasJanuary1st
If set to 1 the week 1 is the one that has January 1st. Otherwise its the one that has the year's first Thursday. This is automatically set according to your locale when Rainlendar is started the first time.

WeekNumberDelta
This is an offset value for the week numbers. You can adjust the week 1 with this. Also negative numbers can be used.

StartHidden
If set to 1 Rainlendar will start as hidden.

UseWindowName
If set to 1 the window will have a name "Rainlendar". Useful feature e.g. with some virtual windows managers.

EventExecute
Executes the given program or bang when the event is due and the message box is displayed. You can also use the special PLAY command to play a wav-file (E.g. PLAY c:\windows\media\chimes.wav).

SnoozeTime
If the message box is snoozed with right mouse button this value defines how long time it will be hidden. The value is in seconds.

TrayExecuteL, TrayExecuteM, TrayExecuteR, TrayExecuteDL, TrayExecuteDM, TrayExecuteDR
These define the action that is done when the tray icon is clicked with the mouse. The L, M and R mean left, middle and right mouse button and the D in front of them means double click.

DisableDoneList
If set to 1, the done list is removed from the Todo-dialog and the done items will be deleted immediately instead of sending them to the done-list.

WheelScrollMonths
Defines how many months are scrolled whit the mouse wheel. Set to 0 to disable the feature. You can also use negative values to swap the direction.

NegativeCoords
This setting makes the position to be interpret so that the negative coordinates are relative to the bottom right corner of the desktop. It's useful for example to keep the calendar there even if you change the screen resolutions. Note that if you have enabled "Movable window" the negative coordinates are converted to positive when the window is moved. If you have trouble keeping the calendar on a secondary monitor try setting this to 0.

FadeDuration
The time in ms that defines how long the fading effects take. Set to 0 to disable the fading.

GrowUpwards
Normally when new items are added the event list and todo window grow downwards. That behaviour can be changed with this setting. You can set this to 2 if you want that the todo-window grows upwards, 8 if you want that the event list grows upwards or 10 if you want both windows to grow upwards. DO NOT USE ANY OTHER VALUES!!!

ShowContextMenu
If set to 1 a context menu instead of full menu is shown when right mouse button is pressed over one of the windows.

CalendarAction
Defines what happens when you double click the calendar:
0=Default behaviour. If an event is selected opens the context menu otherwise creates a new event. 1=Edits the first event or creates a new event.
2=Always creates a new event.
3=Deletes the selected event(s).

TodoAction
Defines what happens when you double click the todo window:
0=Default behaviour. If an todo item is selected opens the context menu otherwise opens the todo dialog. 1=Marks the todo item checked.
2=Opens the todo dialog and selects the item.
3=Opens the todo dialog.
4=Deletes the todo item.
5=Marks the todo item as done.

EventListAction
Defines what happens when you double click the event list window:
0=Default behaviour. If an event is selected opens it for editing. 1=Creates a new event.
2=Deletes the selected event.

HideFromCalendar
List of profiles that you don't want to be visible in the calendar. Separate the list with ';'-char. E.g. HideFromCalendar=Birthday;Personal;Outlook

HideFromEventList
List of profiles that you don't want to be visible in the event list. Separate the list with ';'-char. E.g. HideFromEventList=Birthday;Personal;Outlook

DisableKeyboardOverride
Disables the Shift-key override with click through and hide on mouse over. Be careful with this one: it's quite hard to change the settings if you cannot click the windows anymore. Especially if you have hidden the tray icon too.

ConfigEditor
Define the editor that you want to use when advanced-button is clicked in the config or skin dialog. Do not use spaces in the path or filename.

UseSkinCharSet
Set to 1 if you want to use the charset defined in the skin's fonts. Otherwise the fonts use the default charset defined in Windows locale.


EDITING SKINS
Most of the skinning can be done from the GUI, which is probably the easiest way to modify the skins. However, sometimes it might be useful to do the changes directly in the skin files. The skin files weren't originally meant to be edited by hand, so some of the entries might be a bit unintuitive.

The items (numbers) in an image can be placed either horizontally or vertically. The correct placement is determined from the dimensions of the image (i.e. whichever is bigger: height or width). The images must be cropped so that they don't hold any extra space and their width (or height) must be divisional with the number of items in the image. The current version of Rainlendar supports BMP, JPG and PNG files. Them PNGs can include alpha mask.

The name of the skin file can be anything that ends with ".ini". The skins must be placed in a separate subfolders, which will give the name to the skin. The same folder can also contain several skin ini-files.

New in 0.21: The skin format has changed slightly. It is now possible to put the different parts to separate sections. The benefit from this is that you can define the drawing order by placing the sections before each other. The sections are drawn the order they are defined (except that background is drawn always first). Note that dynamic items (Time and Button) are always drawn on top of the static items (i.e. normal calendar graphics). The Image-sections can be drawn in any place.

The sections are: [Background], [Days], [Today], [Weekdays], [Month], [Year], [Event], [WeekNumbers], [Tooltip], [Todo], [MessageBox] and [EventList]. If you use these do not add the [Rainlendar]-section or the skin is read as old format.

Important! If you create a skin that uses the new format you should inform the users that it requires Rainlendar 0.21 or newer. The new skins behave quite badly in 0.20 and older versions.

BackgroundBitmapName
The filename of the background picture to use behind the calendar. You can also select if you want the image to be tiled or stretched if it's too small for the calendar window. It's also possible to grab the desktop behind the calendar and use it as background.

BackgroundMode
0 = Tile background to fill the whole window
1 = Transparent background
2 = Stretch background to fill the whole window
3 = Solid color background

BackgroundBevel
0 = No not draw bevel around solid color background
1 = Draw bevel around solid color background

BackgroundSolidColor
Color of the solid background defined as BGR hex-value (e.g. BackgroundSolidColor=888888)

ToolTipFont
The font to be used with the tooltips. Check below for more info about the fonts.

ToolTipFontColor
Color of the tooltip font defined as BGR hex-value (e.g. ToolTipFontColor=000000)

ToolTipBGColor
Color of the tooltip background defined as BGR hex-value (e.g. ToolTipBGColor=FFFFFF)

DaysEnable
0 = Do not show days in calendar
1 = Show days in calendar

DaysX
X-position of the days

DaysY
Y-position of the days

DaysW
Width of the days

DaysH
Height of the days

DaysAlign
0 = TopLeft
1 = TopRight
2 = TopCenter
16 = MiddleLeft
17 = MiddleRight
18 = Middle
32 = BottomLeft
33 = BottomRight
34 = BottomCenter

DaysRasterizer
FONT = Use fonts to display the days
BITMAP = Use bitmap to display the days

DaysFont
The font to be used with the days. Check below for more info about the fonts.

DaysFontColor
Color of the font defined as BGR hex-value (e.g. DaysFontColor=44AAFF)

DaysBitmapName
Filename of the days bitmap. The bitmap must contain either numbers from 0 to 9 or from 0 to 31. All the numbers must be same size.

DaysNumOfComponents
Number of components in the bitmap. If the bitmap has numbers from 0 to 9, set this to 10. For numbers from 0 to 31 use value 32. Note that with 32 numbers the 0 is never used, so it may hold anything.

DaysSeparation
The horizontal separation of the numbers (i.e. how close/far the numbers are placed from each other). This is only applied with bitmaps when the number of components is 10. The value can be negative.

DaysIgnoreToday
0 = Draw a day for today 1 = Do not draw a day for today

DaysIgnoreEvent
0 = Draw a day for event days 1 = Do not draw a day for event days

DaysWeekendBitmapName
Same as DaysBitmapName but for the weekends.

DaysWeekendFontColor
Same as DaysFontColor but for the weekends.

DaysLayout
0 = 7 x 6 grid (i.e. the normal layout)
1 = Horizontal
2 = Vertical

TodayEnable
0 = Do not show today in calendar
1 = Show today in calendar

TodayAlign
0 = TopLeft
1 = TopRight
2 = TopCenter
16 = MiddleLeft
17 = MiddleRight
18 = Middle
32 = BottomLeft
33 = BottomRight
34 = BottomCenter

TodayRasterizer
FONT = Use fonts to display the today
BITMAP = Use bitmap to display the today

TodayFont
The font to be used with the today. Check below for more info about the fonts.

TodayFontColor
Color of the font defined as BGR hex-value (e.g. TodayFontColor=44AAFF)

TodayBitmapName
Filename of the today bitmap. The bitmap must contain either numbers from 0 to 9 or from 0 to 31. It can also contain just one image.

TodayNumOfComponents
Number of components in the bitmap. If the bitmap has numbers from 0 to 9, set this to 10. For numbers from 0 to 31 use value 32. If the bitmap contains only one image use value 1.

TodaySeparation
The horizontal separation of the numbers (i.e. how close/far the numbers are placed from each other). This is only applied with bitmaps when the number of components is 10. The value can be negative.

WeekdaysEnable
0 = Do not show weekdays in calendar
1 = Show weekdays in calendar

WeekdaysAlign
0 = TopLeft
1 = TopRight
2 = TopCenter
16 = MiddleLeft
17 = MiddleRight
18 = Middle
32 = BottomLeft
33 = BottomRight
34 = BottomCenter

WeekdaysRasterizer
FONT = Use fonts to display the weekdays
BITMAP = Use bitmap to display the weekdays

WeekdaysFont
The font to be used with the today. Check below for more info about the fonts.

WeekdaysFontColor
Color of the font defined as BGR hex-value (e.g. WeekdaysFontColor=44AAFF)

WeekdayNames
Weekday strings separated with '/'-char (E.g. WeekdayNames=Sun/Mon/Tue/Wed/Thu/Fri/Sat)

WeekdaysBitmapName
Filename of the weekdays bitmap. The bitmap must contain 7 items (one for each weekday).

MonthEnable
0 = Do not show month in calendar
1 = Show month in calendar

MonthX
X-position of the month

MonthY
Y-position of the month

MonthAlign
0 = TopLeft
1 = TopRight
2 = TopCenter
16 = MiddleLeft
17 = MiddleRight
18 = Middle
32 = BottomLeft
33 = BottomRight
34 = BottomCenter

MonthRasterizer
FONT = Use fonts to display the months
BITMAP = Use bitmap to display the months

MonthFont
The font to be used with the month. Check below for more info about the fonts.

MonthFontColor
Color of the font defined as BGR hex-value (e.g. WeekdaysFontColor=44AAFF)

MonthBitmapName
Filename of the months bitmap. The bitmap must contain 12 items (one for each month).

MonthNames
Names of the months separated with '/'-char (E.g MonthNames=January / February / March / April / May / June / July / August / September / October / November / December)

YearEnable
0 = Do not show year in calendar 1 = Show year in calendar

YearX
X-position of the year

YearY
Y-position of the year

YearAlign
0 = TopLeft
1 = TopRight
2 = TopCenter
16 = MiddleLeft
17 = MiddleRight
18 = Middle
32 = BottomLeft
33 = BottomRight
34 = BottomCenter

YearRasterizer
FONT = Use fonts to display the years
BITMAP = Use bitmap to display the years

YearFont
The font to be used with the year. Check below for more info about the fonts.

YearFontColor
Color of the font defined as BGR hex-value (e.g. WeekdaysFontColor=44AAFF)

YearBitmapName
Filename of the year bitmap. The bitmap must contain numbers from 0 to 9.

DaysSeparation
The horizontal separation of the numbers (i.e. how close/far the numbers are placed from each other). The value can be negative.

EventEnable
0 = Do not show events in calendar
1 = Show events in calendar

EventAlign
0 = TopLeft
1 = TopRight
2 = TopCenter
16 = MiddleLeft
17 = MiddleRight
18 = Middle
32 = BottomLeft
33 = BottomRight
34 = BottomCenter

EventRasterizer
FONT = Use fonts to display the events
BITMAP = Use bitmap to display the events

EventFont
The font to be used with the events. Check below for more info about the fonts.

EventFontColor
Color of the font defined as BGR hex-value (e.g. WeekdaysFontColor=44AAFF)

EventBitmapName
Filename of the events bitmap. The bitmap must contain either numbers from 0 to 9 or from 0 to 31. It can also contain just one image.

EventNumOfComponents
Number of components in the bitmap. If the bitmap has numbers from 0 to 9, set this to 10. For numbers from 0 to 31 use value 32. If the bitmap contains only one image use value 1.

EventSeparation
The horizontal separation of the numbers (i.e. how close/far the numbers are placed from each other). This is only applied with bitmaps when the number of components is 10. The value can be negative.

EventInCalendar
0 = Do not show event texts inside the calendar
1 = Show event texts inside the calendar

EventFont2
The font to be used with the events texts that are dran on the calendar. Check below for more info about the fonts.

EventFontColor2
Color of the font defined as BGR hex-value (e.g. WeekdaysFontColor=44AAFF)

WeekNumbersEnable
0 = Do not show week numbers in calendar
1 = Show week numbers in calendar

WeekNumbersAlign
0 = TopLeft
1 = TopRight
2 = TopCenter
16 = MiddleLeft
17 = MiddleRight
18 = Middle
32 = BottomLeft
33 = BottomRight
34 = BottomCenter

WeekNumbersRasterizer
FONT = Use fonts to display the week numbers
BITMAP = Use bitmap to display the week numbers

WeekNumbersFont
The font to be used with the week numbers. Check below for more info about the fonts.

WeekNumbersFontColor
Color of the font defined as BGR hex-value (e.g. WeekdaysFontColor=44AAFF)

WeekNumbersBitmapName
Filename of the week numbers bitmap. The bitmap must contain either numbers from 0 to 9 or from 0 to 53. It can also contain just one image.

WeekNumbersNumOfComponents
Number of components in the bitmap. If the bitmap has numbers from 0 to 9, set this to 10. For numbers from 0 to 53 use value 54.

WeekNumbersSeparation
The horizontal separation of the numbers (i.e. how close/far the numbers are placed from each other). This is only applied with bitmaps when the number of components is 10. The value can be negative.

TodoW
The width of the todo window.

TodoFont
The font to be used with the todo items. Check below for more info about the fonts.

TodoFontColor
Color of the font defined as BGR hex-value (e.g. TodoFontColor=44AAFF)

TodoBitmapName
Name of the todo window's background image.

TodoBitmapMargins
Margins for the bitmap scaling. The margins are four comma separated values that define the non-scaled part of the images borders. e.g. TodoBitmapMargins=10,10,0,0 would leave 10 pixels from the left and top borders as is and scale the rest.

TodoTextMargins
Margins for the text. The margins are four comma separated values that define the borders for the text (i.e. text is not drawn on the border area).

TodoSeparation
The vertical separation of the todo items (i.e. how close/far the texts are placed from each other).

TodoItemBitmapName
Name of the image for the todo items.

TodoItemAlign
0 = TopLeft
1 = TopRight
2 = TopCenter
16 = MiddleLeft
17 = MiddleRight
18 = Middle
32 = BottomLeft
33 = BottomRight
34 = BottomCenter

TodoItemOffset
Offset to the todo item. This is two comma separated values (e.g. TodoItemOffset=10,-10)

MessageBoxBitmapName
Name of the messagebox background image.

MessageBoxFont
The font to be used with the messagebox texts. Check below for more info about the fonts.

MessageBoxFontColor
Color of the font defined as BGR hex-value (e.g. TodoFontColor=44AAFF)

MessageBoxBitmapMargins
Margins for the bitmap scaling. The margins are four comma separated values that define the non-scaled part of the images borders. e.g. MessageBoxBitmapMargins=10,10,0,0 would leave 10 pixels from the left and top borders as is and scale the rest.

MessageBoxTextMargins
Margins for the text. The margins are four comma separated values that define the borders for the text (i.e. text is not drawn on the border area).

MessageBoxTextMaxWidth
Maximum width in pixels that the message box can scale. The text is wrapped if longer than that.

MessageBoxSeparation
The horizontal separation of the event texts (i.e. how close/far the texts are placed from each other).

EventListW
The width of the event list window.

EventListFont
The font to be used with the event list items. Check below for more info about the fonts.

EventListFontColor
Color of the font defined as BGR hex-value (e.g. EventListFontColor=44AAFF)

EventListBitmapName
Name of the EventList window's background image.

EventListBitmapMargins
Margins for the bitmap scaling. The margins are four comma separated values that define the non-scaled part of the images borders. e.g. EventListBitmapMargins=10,10,0,0 would leave 10 pixels from the left and top borders as is and scale the rest.

EventListTextMargins
Margins for the text. The margins are four comma separated values that define the borders for the text (i.e. text is not drawn on the border area).

EventListSeparation
The vertical separation of the EventList items (i.e. how close/far the texts are placed from each other).

EventListHeaderItemBitmapName
Name of the image for the EventList items.

EventListHeaderItemAlign
0 = TopLeft
1 = TopRight
2 = TopCenter
16 = MiddleLeft
17 = MiddleRight
18 = Middle
32 = BottomLeft
33 = BottomRight
34 = BottomCenter

EventListHeaderItemOffset
Offset to the EventList item. This is two comma separated values (e.g. EventListItemOffset=10,-10)

EventListHeaderFont
The font to be used with the event list headers. Check below for more info about the fonts.

EventListHeaderFontColor
Color of the font defined as BGR hex-value (e.g. EventListFontColor=44AAFF)

EventListHeaderSeparation
The vertical separation between the header and the items (i.e. how close/far the texts are placed from each other).

EventListHeaderFormat
The header format. Check here for the format codes.

Buttons

It's also possible to add buttons to the skins. This can be only done in the skin's ini-file as there is no GUI for the buttons. To add a button you need to create a new section called [ButtonN] where the N is a number (it can be any number as long as no other button is using it). The buttons can have these values:

Window
Defines the window where the button is placed. 0 = Calendar, 1 = Todo, 2 = MessageBox, 3 = EventList.

X
X-coordinate of the button. You can also give negative values in which case the button location is calculated from the right edge of the skin.

Y
Y-coordinate of the button.

BitmapName
The button image. The image must have 3 frames (normal, pushed and hover).

Command
The command that is executed when the button is pressed. It can be a normal application or a bang.

Enable
Set to 0, to disable the item.

[Button1]
Window=0
X=5
Y=5
BitmapName=button-left.png
Command=!RainlendarShowPrev

Time items

Time items show the current date or time in the calendar. They can be used to e.g. show a clock or current day. Note that the window is updated only once per minute so you cannot use seconds in the clock (or you can but it's rather pointless). To add a time item you need to create a new section called [TimeN] where the N is a number (it can be any number as long as no other time item is using it). The time items can have these values:

Window
Defines the window where the button is placed. 0 = Calendar, 1 = Todo, 2 = MessageBox, 3 = EventList.

X
X-coordinate of the button. You can also give negative values in which case the button location is calculated from the right edge of the skin.

Y
Y-coordinate of the button.

Rasterizer
FONT = Use fonts to display the items
BITMAP = Use bitmap to display the items

BitmapName
The bitmap must have numbers from 0 to 9.

Align
0 = TopLeft
1 = TopRight
2 = TopCenter
16 = MiddleLeft
17 = MiddleRight
18 = Middle
32 = BottomLeft
33 = BottomRight
34 = BottomCenter

Separation
The horizontal separation of the numbers (i.e. how close/far the numbers are placed from each other). This is only applied with bitmaps when the number of components is 10. The value can be negative.

Digits
Number of digits used in the values. This applies only to bitmaps.

Font
The font to be used with the time items. Check below for more info about the fonts.

FontColor
Color of the font defined as BGR hex-value (e.g. FontColor=44AAFF)

Format
The time/date format. Check here for the format codes.

Enable
Set to 0, to disable the item.

[Time1]
Window=0
X=-50
Y=10
Rasterizer=FONT
Font=-17/0/0/0/700/0/0/0/0/3/2/1/34/Arial
FontColor=FFFFFF
Format=%d

Images

The images are similar as buttons and time items except that they do not do anything. An image is just drawn in the window. To add an image you need to create a new section called [ImageN] where the N is a number (it can be any number as long as no other image is using it). The imagess can have these values:

Window
Defines the window where the button is placed. 0 = Calendar, 1 = Todo, 2 = MessageBox, 3 = EventList.

X
X-coordinate of the image. You can also give negative values in which case the button location is calculated from the right edge of the skin.

Y
Y-coordinate of the image.

BitmapName
The name of the image.

Enable
Set to 0, to disable the item.

[Image1]
Window=0
X=0
Y=0
BitmapName=shine.png

Fonts

The fonts are defined with 13 values and the name of the font all separated with '/'-char. The most important values are the first one which defines the height of the font and the last, which is the typeface name of the font. The height of the font is defined in logical size and not in the point size.

E.g. -17/0/0/0/700/0/0/0/0/3/2/1/34/Arial

The different values are in order:

  • height of font
  • average character width
  • angle of escapement
  • base-line orientation angle
  • font weight
  • italic attribute option
  • underline attribute option
  • strikeout attribute option
  • character set identifier (this is always DEFAULT_CHARSET unless UseSkinCharSet is set to 1)
  • output precision
  • clipping precision
  • output quality
  • pitch and family
  • typeface name

    • Check CreateFont() in Win32 API documentation for more info.

    Profiles

    With profiles you can customize individual events. When you create an event there is a combo box which can be used to select the profile for the event. The combo box lists the profiles that are defined in the current skin's ini-file, but you can also give a custom profile name. If a certain profile is not defined in a skin a default settings are used instead.

    The profiles are defined in the skin file by making a new section. The name of the section must start with the word "Profile" (without the quotes). After that you can put pretty much anything to make the section unique (i.e. there cannot be two sections that have same name (i.e. the string between []-chars, not the "Name=" string).

    The profile section must have a key called Name, which will give the identity to the profile. The name is the one that is displayed in the Edit Event dialog.

    Other keys that can be in the profile section are:

  • ToolTipFontColor
  • EventBitmapName
  • EventFontColor
  • EventFontColor2
  • EventIconName
  • EventIconAlign
  • EventDrawAlways
  • EventListFontColor
  • Priority

    • The values for the keys are exactly the same as defined above. The profile settings override the default skin settings, so for example if the default ToolTipFontColor value is black and you create a profile that defines it white, all events that use that profile will draw the tooltip texts white. Note that it is not necessary to give all the keys always; you can define just the ones that are necessary (default values are used for the missing keys).

    The EventIconName, EventIconAlign and EventDrawAlways can only be used with the profiles. The event icon is a small image that is displayed on top of the event with the given profile. The align uses the same alignment system as other aligns (check e.g. DaysAlign for the codes). If the EventDrawAlways is set to 1 it means that the event is drawn always on the calendar.

    The priority defines what is drawn on the calendar when there are several event on the same day. The repeating events also have predefined priorities so that less frequently happening events have higher priority. Like this:

    Daily Priority    = 10
Weekly Priority   = 20
Monthly Priority  = 30
Yearly Priority   = 40
Single Priority   = 50
    The profile's priority value is added to this to determine the actual priority for the event. If you don't want that the recurrence pattern affects the priorities of the events you can define them so that they are >50 apart from each other. E.g. 100, 200, 300, etc.

    Currently it is not possible to create/edit the profiles from the GUI. You need to create by hand with a text editor.

    E.g.

    [Profile 1]
Name=Sunday
ToolTipFontColor=00DDFF
EventFontColor=DD8888

[Profile 2]
Name=Important
ToolTipFontColor=FFFFFF
EventFontColor=FFFFFF
EventFontColor2=FFFFFF
EventIconName=Icons/Lightning.png
EventIconAlign=18


BANGS
The Rainlendar can be controlled also with Litestep !Bang-commands. You can also give the !bangs as command line arguments for Rainlendar.exe (note that this does not work if Rainlendar is OnDesktop). The bangs can also be used in other places (e.g. buttons) to control the calendar.

!RainlendarShow [Activate]
Displays all Rainlendar windows. If the parameter is given the calendar window is activated and put on top of the other windows (this doesn't work if OnBottom window position is selected).

!RainlendarHide
Hides all Rainlendar windows.

!RainlendarToggle [Visible]
Toggles all Rainlendar windows. If visible-argument is given only the visible windows are toggled.

!RainlendarConfig
Opens the config-dialog.

!RainlendarEditSkin
Opens the edit skin -dialog.

!RainlendarRefresh
Refreshes Rainlendar.

!RainlendarQuit
Quits Rainlendar.

!RainlendarShowNext [Count]
Shows the next month. The Count defines how many months are skipped.

!RainlendarShowPrev [Count]
Shows the previous month. The Count defines how many months are skipped.

!RainlendarShowMonth [Month] [Year]
Shows the given month. If Year is not given the current year is used. If the month is also omitted then the current month is shown.

!RainlendarShowCurrent
Shows the curretn month (i.e. the one that has today's date).

!RainlendarLsBoxHook
The !bang to put Rainlendar in a lsBox.

!RainlendarMove [X] [Y] [Window]
Moves the calendar window to a new position. The Window argument defines the window to be moved. 0=Calendar, 1=Todo, 2=MessageBox, 3=EventList

!RainlendarZPos [ZPOS]
Changes the Z-position of the window. Values for ZPOS are: 0 = OnBottom, 1 = Normal, 2 = OnTop, 3 = OnDesktop.

!RainlendarEditTodo
Opens the Todo dialog where you can add/modify the todo items.

!RainlendarShowTodo
Shows the todo window.

!RainlendarHideTodo
Hides the todo window.

!RainlendarToggleTodo
Toggles the todo window.

!RainlendarShowEventList
Shows the EventList window.

!RainlendarHideEventList
Hides the EventList window.

!RainlendarToggleEventList
Toggles the EventList window.

!RainlendarShowCalendar
Shows the Calendar window.

!RainlendarHideCalendar
Hides the Calendar window.

!RainlendarToggleCalendar
Toggles the Calendar window.

!RainlendarAddEvent [Day] [Month] [Year]
Opens the new event dialog for the given date.

!RainlendarShowItem [Section]
Shows the given item. The argument is the name of the item's section in the skin's ini-file.

!RainlendarHideItem [Section]
Hides the given item. The argument is the name of the item's section in the skin's ini-file.

!RainlendarToggleItem [Section]
Toggles the given item. The argument is the name of the item's section in the skin's ini-file.

!RainlendarRedraw
Redraws the window. You need to use this if you hide/show items.

!RainlendarChangeSkin [Skin\IniFile]
Changes the skin. The argument is the name of the skin and name of the ini-file separated with '\'-char. E.g. !RainlendarChangeSkin Shadow3.1\English.ini

!Execute
It's possible to combine multiple bangs together with the !Execute bang. The bags are separated with []. E.g. !Execute [!RainlendarToggleCalendar][!RainlendarToggleTodo]


PLUGINS

IniFormatPlugin

This plugin uses Rainlendar's custom ini-format for the events. The plugin can read and write events. You can have multiple event and todo files. The plus-button adds a new file and the cross removes the selected file. Note that the items will be saved to all of them unless you set them Read-Only (can be set from the star-button). Read Only events cannot be modified and they are not sent to other plugins (including the ServerPlugin, so they are not distributed).

Outlook Plugin

This plugin can read appointments and tasks from Outlook. The read items are considered as read-only so they cannot be modified. The plugin is meant to be used only in Win2k or WinXP (the timezone conversion does not work in Win9x).

Note that the exception dates are not supported. So if you have a repeating event and you have deleted/modified one of the events in Outlook Rainlendar will show the original event still.

Outlook Profile
If you have an Outlook profile write it here. If not, leave this empty.

Use Outlook labels as event profiles
If enabled the labels in Outlook appointments are used as Rainlendar's event profiles. Otherwise the profiles are called "Outlook".

Keep MAPI-connection alive
If enabled the MAPI connection is not closed after the appointments have been read from Outlook. I suggest to keep this enabled otherwise since MAPI leaks memory.

Don't show message body
If enabled only the subject-field is shown,

Don't show completed tasks
If enabled the completed tasks do not appear in the todo-list.

Imported message stores
This lists all the message stores that are supported by Rainlendar. You can select which ones are read from Outlook.

ServerPlugin

This plugin syncronizes the events with a different clients. You need to be running the RainlendarServer (see the ReadMe.txt in the server package for more info). If the plugin is made as a default it updates the event from the server before it is edited, so there might be a small delay before the Edit Event-dialog is opened. The events are requested from the server when Rainlendar is started or when it is refreshed.

User ID
The User ID is the identification for your events. The server will use the ID to store and retrieve the events. So, you can use the same server to store different events from clients by giving different IDs. Please note that there is no security checks or authentication of any kind, so basically anyone who can access to the server from network can read and modify your events. If you are running Linux version of the server, the ID is case sensitive.

Address
This is the address of the the computer that runs the RainlendarServer. You can use the IP number or the network name if the machine has one. Note that there is no public server that you can connect to (as far as I know), so you need to run the RainlendarServer on your own computer or on a one that you have access to.

Port
The is the port that the Rainlendar tries to connect to. You can use any port you wish, just make sure that it's the same what RainlendarServer is listening.

Poll events from the server
If enabled the plugin checks for new events from the server after the specified time period.

iCalendar Plugin

This plugin can read/write events and tasks from .ics files. This plugin can be used for example to show Sunbird's events in Rainlendar. The plugin is meant to be used only in Win2k or WinXP.

Refresh when file changes
If enabled the plugin monitors the files and reloads them when they change.

Ignore completed tasks
If enabled the completed tasks are not shown in the todo-list.

Few Notes:
  • It's a bad idea to use the same .ics-file in different applications (unless you load it as read-only). You are asking for problems if you for example edit the Sunbird's file with Rainlendar while both applications are running.
  • If the UID (i.e. identification string) is not in correct format the event/todo-item is always imported as read-only.
  • Deleting an event removes it completely from the .ics-file. This can cause problems with RainlendarServer.
  • The iCalendar does not have a done-list so tasks that are moved to there are not saved to the ics-file.
  • Exception dates are not supported!
            •


STEP.RC

These are Litestep specific settings that are placed in the step.rc file. Remember to put the paths inside quotes if you have spaces in them!

RainlendarPath
This defines the path to the Rainlendar.ini file, which contains the general settings.

RainlendarSkinsPath
This defines the folder where the skin subfolders are. If this is not defined the Skins-folder under RainlendarPath is used instead.

RainlendarLanguagesPath
This defines the folder where the language files are. If this is not defined a Language-folder under the RainlendarPath is used instead.

RainlendarPluginsPath
This defines the folder where the plugins are. If this is not defined a Plugins-folder under the RainlendarPath is used instead.

RainlendarCurrentSkin
The name of current skin. This can be used to force the use of some skin. This overrides the settings in Rainlendar.ini. You must also define RainlendarCurrentSkinIni.

RainlendarCurrentSkinIni
The name of current skin ini-file.


CONTACT

The latest version will be found from http://www.rainlendar.net. You can also find new languages and skins from there. You may also send comments and bug-reports to the author. But before you do, check the Rainlendar's section in the Forum. It might already contain answers to your questions.

Please put the name of the product (i.e. Rainlendar) in the subject-field of the mail. It may be useful if you write the version of the product also. If you are reporting a bug, please try to be as exact as possible when describing the symptoms. Also write down the details of your system (like OS version, Litestep build, and so on).


LICENSE
            GNU GENERAL PUBLIC LICENSE
               Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it.  (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.)  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

  To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the
source code.  And you must show them these terms so they know their
rights.

  We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

  Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software.  If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

  Finally, any free program is threatened constantly by software
patents.  We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary.  To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

  The precise terms and conditions for copying, distribution and
modification follow.

            GNU GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License.  The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language.  (Hereinafter, translation is included without limitation in
the term "modification".)  Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

  1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent notices
    stating that you changed the files and the date of any change.

    b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

    c) If the modified program normally reads commands interactively
    when run, you must cause it, when started running for such
    interactive use in the most ordinary way, to print or display an
    announcement including an appropriate copyright notice and a
    notice that there is no warranty (or else, saying that you provide
    a warranty) and that users may redistribute the program under
    these conditions, and telling the user how to view a copy of this
    License.  (Exception: if the Program itself is interactive but
    does not normally print such an announcement, your work based on
    the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

    a) Accompany it with the complete corresponding machine-readable
    source code, which must be distributed under the terms of Sections
    1 and 2 above on a medium customarily used for software interchange; or,

    b) Accompany it with a written offer, valid for at least three
    years, to give any third party, for a charge no more than your
    cost of physically performing source distribution, a complete
    machine-readable copy of the corresponding source code, to be
    distributed under the terms of Sections 1 and 2 above on a medium
    customarily used for software interchange; or,

    c) Accompany it with the information you received as to the offer
    to distribute corresponding source code.  (This alternative is
    allowed only for noncommercial distribution and only if you
    received the program in object code or executable form with such
    an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it.  For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable.  However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

  4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License.  Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

  5. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Program or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

  6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

  7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all.  For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded.  In such case, this License incorporates
the limitation as if written in the body of this License.

  9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number.  If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation.  If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

  10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission.  For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this.  Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

                NO WARRANTY

  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

             END OF TERMS AND CONDITIONS


HISTORY

1 MAR 2005 (Version 0.21 ß)

  • Added support for iCalendar files.
  • Fixed a bug when importing old Rainlendar events that had time in the message left the time and removed the rest of the text even though it should have done exactly the opposite :-(
  • The plugin doesn't have to be active to be able to export events.
  • Fixed a crash bug when todo-files were removed from the IniFormatPlugin's list.
  • OutlookPlugin is not directly dependent from mapi32.dll anymore. This should get rid of those missing ordinal errors.
  • Fixed a problem where the end time was shown as one minute less than what it really was.
  • Added automatic polling to the ServerPlugin.
  • Recurrency -> Recurrence
  • All events list doesn't lose the selection when event is edited.
  • Monthly recurrence displayed sometimes 'fifth' instead of 'last' like it should have been. Fixed.
  • Seventh day of the month was displayed to belong to the second week in the monthly recurrence. Fixed.
  • Rainlendar now checks if it's already running before it starts. Use -m argument to disable the check.
  • Deleting items from the Done-list didn't work very well. Fixed.
  • The events in the message box are now sorted.
  • The "due in ..." text is not shown for the all day events and negative numbers are not shown for past events.
  • Editing todo-items when ServerPlugin was set as default crashed Rainlendar. Fixed.
  • Added fading effect. Use FadeDuration=0 to disable it.
  • Added "Opaque on mouse over" and "Transparent on mouse over" features.
  • Disabled possibility to open several instances of the dialogs.
  • Todo and events list can be made to grow upwards with GrowUpwards.
  • The hidden windows do not pop up anymore when "Hide on mouse over" is selected.
  • Sorting algorithm of the events now uses only the time and not the date.
  • It's possible to select which message stores are imported from Outlook.
  • Removed negative coords option from the config dialog (no point keeping it there).
  • Transparency settings won't apply to the message box; it is always opaque.
  • Stretched background is not included in the calendar size.
  • Fixed a crash bug with recurring events.
  • Changed the skin-format slightly (the old files still work too). It is now possible to define the drawing order.
  • Small adjustments to the OnDesktop-setting (the calendar shouldn't disappear so easily anymore).
  • The duration field is editable. Use m for minutes, h for hours and d for days. E.g. 90m for 90 minutes.
  • Added bangs: !RainlendarShowItem, !RainlendarHideItem, !RainlendarToggleItem, !RainlendarRedraw and !RainlendarChangeSkin.
  • Edit event dialog remembers the previously used profile again.
  • Added "Delete item" to the Todo-window's context menu.
  • !RainlendarQuit works in buttons.
  • The edit box for event message now wraps words instead of extends to the right.
  • Added ShowContextMenu option can be used to show only the context menu when right mouse button is pressed.
  • Added CalendarAction, TodoAction and EventListAction that can be used to define what happens when the window is double clicked.
  • Locked windows hide/show together.
  • It's possible to define the position of the message box with MessageBoxX and MessageBoxY.
  • The calendar quits from to Alt-F4.
  • Optimized text rendering. This should speed up refresh with multiple calendars.
  • EventListHeaderSeparation is included in header alignment rect. This might break some skins :(
  • Added HideFromCalendar and HideFromEventList which can be used to hide events with certain profile.
  • Multiday events show also the start and end date.
  • It's possible to define the color of the event with EventListFontColor in the profile section.
  • All day events can be longer than one day (there is no GUI to create multiday events though).
  • Keyboard override for click through and mouse hide can be disabled with DisableKeyboardOverride.
  • The profile priority is applied to the always drawn profiles too.
  • Added "visible"-argument to the !RainlendarToggle, which toggles only the visible windows.
  • "!RainlendarShow activate" only shows the calendar window.
  • The config editor can be changed with ConfigEditor (do not use any spaces in the path!)
  • Fonts use the default charset instead of the one defined in the skin. This can be overridden with UseSkinCharSet.

5 DEC 2004 (Version 0.20 ß)

  • New program icon by dieselx graphics (http://www.dieselx.de)
  • Fixed a negative coordinate problem with the tooltip.
  • Fixed a crash bug with Outlook support.
  • Message box shouldn't grow too large anymore.
  • Added "Get More Languages..." and "Get More Skins..." to the menu.
  • The order of todo-items can be changed.
  • Todo-list is multiselectable.
  • DisableDoneList=1 in Rainlendar.ini gets rid of the done-list.
  • Double-clicking on a todo-item will mark it done instead of opening the todo-dialog.
  • The plugins path can be defined with RainlendarPluginsPath in Litestep's step.rc.
  • Added Import and Export buttons to All Events dialog.
  • The windows can be enabled/disabled from the context menu.
  • Removed window coordinates from the config dialog.
  • Implemented an event list window which shows the coming events.
  • Added delete button to the all events dialog.
  • The columns in all events dialog are sortable.
  • Improved support for recurring events.
  • Skins can have custom text and date-items. See Skins-part in the docs for more info.
  • Skins can have buttons. See Skins-part in the docs for more info.
  • Windows snap to each other now too.
  • It is possible to lock window position to the calendar window.
  • Days can be set horizontally and vertically.
  • Weekends can be drawn with different font color/bitmap.
  • Added support for Outlook tasks.
  • Added a transparency slider to the config dialog.
  • Added click through feature (use Shift-key to disable it)
  • OnDesktop can be used with transparency.
  • !RainlendarShowEvents is gone.
  • Browsing for image files removes the absolute path automatically.
  • Small fixes to the usability of the skin editor.
  • It's possible to change the months with mouse wheel.
  • The todo-items can be synced with the server now too.
  • Weeknumbering can be adjusted with WeekNumberDelta.
  • Added "Don't show completed tasks" and "Don't show message body" to Outlook support.
  • Added some more hotkeys and !bangs.
  • Removed EventsPath-rcCommand (it doesn't work anymore).
  • Loading bmps don't create temp files anymore.
  • Changed the wallpaper polling routine a little.

9 MAY 2004 (Version 0.19.3 ß)

  • Refreshing the calendar lost the OnDesktop state. Fixed.
  • Rainlendar should work a bit better with Outlook 2000 now.
  • Fixed a crash bug with All events dialog.
  • Fixed a crash bug with Outlook sync.
  • Fixed !RainlendarShow activate. It only works when it's executed with Rainlendar.exe though,
  • Litestep variables can be used in the colors.
  • Rainlendar should now be able to access Outlook's appointments even if Outlook is not the default email client.
  • The todo list wasn't read from the Todo.ini-file unless it was enabled. Fixed.
  • Added DST calculations to Outlook dates, so they are not an hour off anymore (well, some still could be...).
  • Rainlendar is only logged in to MAPI when it's updating the Outlook appointments. Use OutlookKeepAlive=1 to keep the connection always on.
  • Fixed tooltip opening in wrong place.
  • The message box opened with wrong size sometimes. Fixed.

20 MAR 2004 (Version 0.19.2 ß)

  • If %APPDATA% is not defined Rainlendar writes the ini-files to it's own folder.
  • The messagebox has now correct size when it is opened the first time.
  • Rewrote the Outlook support to use the MAPI. This will get rid of the security warning with Outlook 2003.
  • Outlook's recurring events are better supported now.
  • Outlook profile can be selected with OutlookProfile in Rainlendar.ini.
  • Outlook appointment labels can be used as profiles with OutlookLabels=1 in Rainlendar.ini.
  • Fixed tooltip positioning in multimonitor systems.
  • Fixed some Win9x issues. The alphablending doesn't work correctly but at least it shouldn't crash anymore.

28 JAN 2004 (Version 0.19.1 ß)

  • If the Rainlendar.ini file was in the Rainlendar's folder a new file was created into Windows folder. Fixed.
  • Added internal handling for !Execute bang so that it can be used without Litestep too.
  • Refreshing doesn't pop up the todo window anymore if it is hidden.
  • Tray icon behaviour can be controlled with TrayExecuteL, TrayExecuteR, TrayExecuteM, TrayExecuteDL, TrayExecuteDM and TrayExecuteDR.

25 JAN 2004 (Version 0.19 ß)

  • The lists of languages and skins are now sorted.
  • It's not anymore possible to override general settings in the skin's ini-file.
  • Added a todo-list. It's a separate window, but most of the general settings apply also to it (movable, zposition etc).
  • Rewrote the window routines. Wharf/lsBox is not supported anymore :-(
  • All events list is now multiselectable and the read-only entries are drawn with gray color.
  • Changed image loading routine. JPEG-images should work now too and the wierd bug with vertical lines as days should be gone.
  • Outlook sync at startup is now optional.
  • Added control for setting the max tooltip width.
  • %n in execute will only use the 255 first characters in the text.
  • Replaced the standard message box with a skinnable one (LMB hides it, RMB snoozes).
  • Events are sorted by the start time.
  • Added a simple alarm system. Add time in front of the event message to define the time when the message box will appear. Time must be in HH:MM or HH:MM AM (or PM).
  • Added a trayicon (doubleclicking it toggles the calendar).
  • Improved the (un)installer. The installer can be now localized too.
  • Added context menu to the event editor.
  • It wasn't possible to set the event's valid until date to a day before the selected event. Fixed.
  • Manual can be opened from the context menu.
  • Added hotkey for the todo dialog.
  • Removed the warning messages with OnDesktop & Native transparency (they were quite annoying). The incompatible settings are now disabled.
  • "Execute on event" can play sounds now too. Just enter PLAY and the sound file. E.g. "PLAY boing.wav"
  • Event icons are drawn on top of the day numbers again.
  • The events, todos and settings are now written to the current user's application folder. This should make it easier to use Rainlendar in multiuser environment.
  • Added few new bangs: !RainlendarEditTodo, !RainlendarShowTodo, !RainlendarHideTodo, !RainlendarToggleTodo, !RainlendarAddEvent and !RainlendarShowEvents
  • The edit event dialog's position should be remembered now as well.
  • Month & year didn't restrict the window size. Fixed.

4 OCT 2003 (Version 0.18 ß)

  • It wasn't possible to add new events on days that already had repeating events. Fixed.
  • Improved the support for Outlook. It's still far from perfect though.
  • Added EventDrawAlways for profiles.
  • Added word wrapping to the tooltips. No GUI for it yet, but add ToolTipMaxWidth=500 to Rainlendar.ini to limit the tooltip window's width to 500 pixels.
  • The skin-list is now updated when the calendar is refreshed.
  • The Language-folders path defaults now to the folder where Rainlendar.dll is located.
  • Automatic refresh after suspend mode should work again.
  • Added priority system which defines what to display when a single day has several events.

23 AUG 2003 (Version 0.17.1 ß)

  • Months in the context menu and some other texts weren't translated. Fixed.
  • Some texts weren't translated at all or were wrong. Fixed.

9 AUG 2003 (Version 0.17 ß)

  • OnDestop radiobutton wasn't in the same group as other. Fixed.
  • Enlarged the dialogs a bit so that localized strings will fit better.
  • The DLL doesn't assume that its name is "Rainlendar.dll" anymore.
  • Newlines are removed from the event messages in the All Events -dialog.
  • Profiles and ordinals can be also localized.
  • The Outlook sync rate is now user definable and it can be also updated manually.
  • The window is not activated anymore during refresh (Note that Outlook sync does still activate the window).
  • Server synchronization got stuck if there were no events to be sent. Fixed.
  • Yearly Outlook appintments were displayed in every 12 years in Rainlendar. Fixed.
  • The current year can be changed with up and down keys.
  • Added support for XP styles.
  • Rewrote the Edit Event -dialog.
  • Double click on the All events -dialog allows editing of the selected event.
  • Added new option: Remember dialog positions.
  • Bottom right corner relative negative coordinates are now optional.
  • Native transparency is disabled if OnDesktop is selected and vice versa (they are incompatible settings).
  • Deleted events weren't propagated to other clients. Fixed.
  • Rainlendar shouldn't crash anymore if one of the images is missing.
  • The message box wasn't shown when day changed. Fixed.

15 JUN 2003 (Version 0.16 ß)

  • Negative y-coords didn't work. Fixed.
  • Added an option to show Outlook appointments in the calendar.
  • The background was clipped when native transparency was not used. Fixed.
  • "!RainlendarShow Activate" didn't work if executed with Rainlendar.exe. Fixed.
  • Added an option to start the week numbering from the week that contains January 1st.
  • Snapping should work now on all monitors.
  • Added option to sync with the server before adding/editing an event.
  • Added an error message if the server has a newer version of an event than the one sent to it.
  • The calendar is refreshed automatically after Windows returns from suspend state.
  • Switching on the native transparency while the calendar is set OnDesktop should work a bit better now.
  • The events for the same day are now sorted, so they should be always in the same order.
  • Added option to use separator line between events in the tooltip.
  • Added a dialog that shows all the events at the same time.
  • Added support for external language files for easier localization.
  • Stretching non-alpha backgrounds messed up the alpha channel. Fixed.
  • Added possiblity to show several months at the same time.

3 FEB 2003 (Version 0.15 ß)

  • Added !RainlendarMove and !RainlendarZPos bangs.
  • Fixed a bug that crashed the program if server name was empty.
  • Made the refresh on screen resolution optional, since it caused problems with some games.
  • The size of the today-image wasn't included in the window size calculation so part of the image was clipped in few skins. Fixed.

23 NOV 2002 (Version 0.14 ß)

  • The skins are loaded from the skins-subfolder by default.
  • The events path now defaults to the same folder where the Rainlendar.ini file is.
  • Fixed a bug that put wrong week number if the first day of the month was sunday.
  • Fixed a bug that sometimes caused multiplication of events when they were deleted.
  • Added support for icons in event profiles (check the shadow3-skin for examples).
  • Added PNG support for easier alpha transparency handling.
  • Improved the wallpaper polling routine; now it checks the timestamp too.
  • Added support for native Win2k/XP transparency.
  • Use Window Name -option was broken. Fixed.
  • Fixed a bug that caused a wrong day to be selected sometimes when the calendar was double clicked.
  • Added support for solid background with an optional bevel edge.
  • Added OnDesktop option to keep the calendar visible even with Explorer's "Show Desktop" feature.

24 AUG 2002 (Version 0.13 ß)

  • Messages are trimmed before they are sent to the server (to keep them below 1000 chars).
  • Removed mouse hooking code due to compatibility problems.
  • Added support for Litestep logging so it's easier to find bugs.
  • Fixed a bug that caused Litestep to crash after recycle.
  • Changing the months should be a bit faster now.
  • Added "Copy to Clipboard" button in the server config dialog.

10 AUG 2002 (Version 0.12 ß)

  • The window is now opened below all other windows when the position is set OnBottom.
  • Added an option to snap the window on the screen edges when it is moved.
  • Added !RainlendarLsBoxHook.
  • Fixed a bug that left the 'm' on the line when %m was used in the "Execute on event".
  • Added repeating events for daily, weekly, monthly and annual events.
  • Added profiles for event customization (check skinning.txt for more info).
  • Tooltip color & font can be changed from the skin settings.
  • !RainlendarShow can be executed with "activate" argument, which activates the window and puts it on top of other windows (doesn't work with OnBottom).

11 JUN 2002 (Version 0.11 ß)

  • Fixed a bug that set the dates to start from wrong day when the day changed.
  • Moving transparent window should be slightly faster now.
  • It was not possible to change the typeface of the fonts. Fixed.
  • Week numbers were not put in all lines that had days. Fixed.
  • Added possibility to set the separation (i.e. the space between) of the numbers in days, today, event, year and week numbers.
  • Separated the general settings and skin settings in different ini files. The skin settings override the general settings.
  • Now it is possible to change the skin from the context menu.
  • Negative coordinates are saved as zero to prevent the window to be placed off screen.
  • The GUI is back. You can once more change the skinning settings with it.
  • Added RainlendarSkinsPath step.rc command which defines the path for the skins.
  • Added RainlendarCurrentSkin and RainlendarCurrentSkinIni which will select the given skin.
  • Added !RainlendarEditSkin bang, which will open the skin editor dialog.

3 JUN 2002 (Version 0.10 ß)

  • Removed all MFC code from the Rainlendar.dll.
  • Added RainlendarEventsPath step.rc command.
  • The Rainlendar.ini file is only saved if it hasn't been changed by the user (this prevents overwriting manual modifications to the Rainlendar.ini).
  • Rainlendar is not anymore dependant on lsapi.dll. It only uses lsapi.dll's functions if ran as Litestep plugin.
  • Removed all skinning stuff from the GUI.

2 MAR 2002 (Version 0.9 ß)

  • Added support for distribution of Rainlendar's events. Check the Server part in the documentation for more info.
  • The calendar is automatically refreshed when the screen resolution changes.
  • Multimonitor functions are only used if the the OS supports them.
  • Fixed a bug with stretched wallpapers having noise pixels in the calendar window.
  • Now it is possible to use Rainlendar.exe to send the !bangs to the calendar (Only Rainlendar's !bangs work).
  • The items can be aligned a bit more freely on the calendar. This might affect existing configs, so check the Align-widget if something is in wrong place.
  • The background image can now be automatically stretched or tiled if it's too small for the calendar.
  • Added option to check if the name of the wallpaper has been changed since last refresh. And if it has, the calendar is automatically refreshed.
  • Added an About-dialog.
  • Rainlendar supports now Litestep's $evar$-variables
  • The calendar window can be moved with the mouse. Note that moving alphamasked calendar might cause problems with some gfx-cards.
  • Added support for OnTop, OnBottom and Normal positioning of the window.
  • Added support for transparency, which is based on window regions. Use magic pink color (FF00FF) in the background picture for transparent pixels (Note that you cannot use alphamask with the background).
  • Added an option to hide the window automatically when mouse is over the calendar (like in Rainmeter).

15 JAN 2002 (Version 0.8 ß)

  • Fixed a bug that prevented Rainlendar to find all its files if the command line argument was surrounded with quotes.
  • Changed the way the calendar is refreshed. Now it works even if there are other windows over it during the refreshing.
  • Now it is possible to define custom color/bitmap for different events.
  • Added possibility to show the event texts in the calendar window.
  • Fixed a memory leak during the refresh.
  • Added week numbers. They are calculated according to the ISO 8601-standard, so in countries that do not follow international standards (like in the U.S.) the week numbers might be incorrect.
  • The bitmap rasterized years are now placed in correct position.
  • By default Rainlendar.exe tries to load the configuration from a folder called Default. So, now it can be started without the need to give any arguments to the exe.
  • Removed the start delay option as it is quite unnecessary at the moment (let me know if someone wants it back :-).

26 DEC 2001 (Version 0.7 ß)

  • Now linked dynamically against MFC. You need might need to update your MFC42.DLL to run this.
  • Fixed small gfx-bugs in the dialogs.
  • The window name is now optional and can be disabled from the config-dialog.
  • The Quit button is grayed out if Rainlendar is ran as Litestep plug-in.
  • Added Wharf-interface so Rainlendar can be put inside a lsBox.

3 DEC 2000 (Version 0.6 ß)

  • Added new menu item to jump to the current month and a equivalent !bang for it (!RainlendarShowCurrent)
  • Added possibility disable hotkeys from the config.
  • Added hotkeys for changing the months. Note that key presses must be clean, i.e. modifiers (alt, shift, ...) cannot be used. This prevents accidental keypresses with vwm. Also note that that the calendar window must be active for hotkeys to work.
  • Rainlendar's window now has a name "Rainlendar"

2 OCT 2000 (Version 0.5 ß)

  • Fixed to work with the latest lsapi.dll's.
  • Rainlendar.exe now accepts quoted path as argument.
  • Fixed a bug that prevented the background image to display fully.

4 JULY 2000 (Version 0.4 ß)

  • Months can now cycled with cursor-keys.
  • Added few bangs: !RainlendarShow, !RainlendarHide, !RainlendarToggle, !RainlendarRefresh, !RainlendarConfig, !RainlendarQuit, !RainlendarShowNext, !RainlendarShowPrev, !RainlendarShowMonth [Month] [Year]
  • Added possibility to start the calendar hidden.
  • Changed the double buffering to full window version. This should reduce flickering.

13 MAY 2000 (Version 0.3 ß)

  • Changed the way how days are calculated.
  • Added possibility to display the current event in a MessageBox.
  • Added possibility execute a command (or !Bang) on a event-day. You can use %m for the event-message.
  • Added event days to display important dates. Doubleclick on a day to insert a text.
  • Added new tab in config-dialog to set the appearance of event days.
  • Alpha-Bitmaps can now have full path as well.
  • Displayed month can be selected form the context- menu.

6 APRIL 2000 (Version 0.2 ß)

  • Removed the Reload-menuitem.
  • RefreshDelay moved to the ini-file. There is no GUI for setting it, so you'll have to edit the ini-file by hand.
  • Month & weekday names are now in the ini-file for localization purposes.
  • Changed the way alpha-transparency is calculated.
  • Magic Pink works now for the background too.
  • Auto-refreshes when the day changes.

26 MARCH 2000 (Version 0.1 ß)

  • Initial Betarelease